package study.eventlisten.interfaceimpl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;

/**
 * 事件发布
 * 有了事件，有了事件监听者，那么什么时候触发这个事件呢？
 * 每次想让监听器收到事件通知的时候，就可以调用一下事件发布的操作。
 * 首先在类里自动注入了ApplicationEventPublisher，
 * 这个也就是我们的ApplicationContext，它实现了这个接口。
 */
@Component
public class MyEventPublish {
    @Autowired
    private ApplicationEventPublisher applicationEventPublisher;

    /**
     *  事件发布方法
     */
    public void pushListener(String msg) {
        applicationEventPublisher.publishEvent(new MyEvent(this, msg));
    }
}
